home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xsw / libswap.c < prev    next >
C/C++ Source or Header  |  1995-05-09  |  3KB  |  108 lines

  1. /*
  2.  *    @(#) libswap.c 1.2 92/10/01 
  3.  */
  4. /***************************************************************************
  5.  *
  6.  *    Copyright (c) 1990        The Santa Cruz Operation, Inc.
  7.  *
  8.  *    All rights reserved.  No part of this program or publication may be
  9.  *    reproduced, transmitted, transcribed, stored in a retrieval system,
  10.  *    or translated into any language or computer language, in any form or
  11.  *    by any means, electronic, mechanical, magnetic, optical, chemical,
  12.  *    biological, or otherwise, without the prior written permission of:
  13.  *    
  14.  *        The Santa Cruz Operation , Inc.        (408) 425-7222
  15.  *        400 Encinal St., Santa Cruz, California 95060 USA
  16.  *
  17.  **************************************************************************/
  18. /*
  19.  * Modification History
  20.  *
  21.  * S000, 30-Sep-92, rickra
  22.  *     Added copyright and modification history
  23.  */
  24. /*LINTLIBRARY*/
  25. /*+-------------------------------------------------------------------------
  26.     libswap.c -- /dev/swap routines for SCO UNIX/386 (maybe other *NIX)
  27.     ...!{gatech,emory}!n4hgf!wht
  28.  
  29.   Defined functions:
  30.     sinit()
  31.     sread(caddr,maddr,len)
  32.  
  33.  routines were originally written by Mike "Ford" Ditto: kudos!!!
  34. --------------------------------------------------------------------------*/
  35. /*+:EDITS:*/
  36. /*:09-25-1990-05:11-wht@n4hgf-release heh-heh x0.22 preliminary */
  37. /*:09-20-1990-00:09-wht@n4hgf-scales, sysinfo/minfo, bootinfo working */
  38. /*:09-15-1990-06:33-wht@n4hgf-adopt u386mon libraries */
  39. /*:08-10-1990-14:12-jmd@p1so/wht@n4hgf-2.20-add Tandem Integrity S2 */
  40. /*:08-07-1990-14:24-wht@n4hgf-nba@sysware.sysware.dk S5R31 updates */
  41. /*:08-02-1990-15:36-wht@n4hgf-2.12-old curses hacks+minor 3.2 formalizations */
  42. /*:07-28-1990-18:06-wht@n4hgf-2.10 release */
  43. /*:06-27-1990-01:57-wht@n4hgf-1.10-incorporate suggestions from alpha testers */
  44. /*:06-25-1990-04:14-wht@n4hgf-1.02-better error handling */
  45. /*:06-24-1990-20:53-wht@n4hgf-v1.01-add ISC support thanks to peter@radig.de */
  46. /*:06-22-1990-02:00-root@n4hgf-creation from libmem */
  47.  
  48. #include <sys/types.h>
  49. #include <fcntl.h>
  50. #include "include/libswap.h"
  51.  
  52. void            leave_text ();
  53.  
  54. extern int      errno;
  55.  
  56. static int      fdswap = -2;
  57. daddr_t         lseek ();
  58.  
  59. /*+-------------------------------------------------------------------------
  60.     sinit()
  61. --------------------------------------------------------------------------*/
  62. void
  63. sinit ()
  64. {
  65.   if (fdswap >= 0)
  66.     return;
  67.   if ((fdswap = open ("/dev/swap", O_RDONLY)) < 0)
  68. #ifdef M_SYS5
  69.     leave_text ("can't open /dev/swap (chgrp mem /dev/swap)", 1);
  70. #else
  71.     leave_text ("can't open /dev/swap (chgrp sys /dev/swap)", 1);
  72. #endif
  73.  
  74. }                /* end of sinit */
  75.  
  76. /*+-------------------------------------------------------------------------
  77.     sread(caddr,maddr,len)
  78. --------------------------------------------------------------------------*/
  79. void
  80. sread (caddr, maddr, len)
  81.      caddr_t         caddr;
  82.      daddr_t         maddr;
  83.      int             len;
  84. {
  85.   char            s80[80];
  86.  
  87. #if defined(M_I286)
  88.   maddr &= 0xFFFFL;
  89. #endif
  90.  
  91.   if (fdswap == -2)
  92.     leave_text ("sinit() not called", 1);
  93.  
  94.   if (lseek (fdswap, maddr, 0) == -1L)
  95.     {
  96.       (void) sprintf (s80, "swap seek error addr %08lx", maddr);
  97.       leave_text (s80, 1);
  98.     }
  99.  
  100.   if (read (fdswap, caddr, len) != len)
  101.     {
  102.       (void) sprintf (s80, "swap read error len %d addr %08lx", len, maddr);
  103.       leave_text (s80, 255);
  104.     }
  105. }                /* end of sread */
  106.  
  107. /* vi: set tabstop=4 shiftwidth=4: */
  108.